import { GanttControlBase } from '../../../widgets';
import { throttle } from '@ibizstudio/runtime';

/**
 * 甘特部件基类
 *
 * @export
 * @class AppGanttBase
 * @extends {GanttControlBase}
 */
export class AppGanttBase extends GanttControlBase {
  /**
   * 绘制
   *
   * @memberof AppGanttBase
   */
  render() {
    if (!this.controlIsLoaded) {
      return null;
    }
    const { controlClassNames } = this.renderOptions;
    return (
      <div class={{ ...controlClassNames, 'app-gantt': true }}>
        {this.tasks.length > 0 ? (
          <gantt-elastic
            class='gantt'
            tasks={this.tasks}
            options={this.options}
            dynamic-style={this.dynamicStyle}
            on-taskList-item-dblclick={($event: any) => throttle(this.taskClick, [$event], this)}
            on-task-item-expand={(task: any) => this.taskItemExpand(task)}
          ></gantt-elastic>
        ) : (
          <div class='app-data-empty'>{this.$t('app.commonwords.nodata')}</div>
        )}
      </div>
    );
  }
}
